package nl.moviefan.site.service;

import java.util.List;
import nl.moviefan.site.model.Artikel;
import nl.moviefan.site.model.Beoordeling;
import nl.moviefan.site.model.MoviefanUser;
import nl.moviefan.site.repository.BeoordelingRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class BeoordelingService {

    @Autowired
    BeoordelingRepository beoordelingRepo;

    public List<Beoordeling> getAll() {
        List<Beoordeling> beoordelingen = beoordelingRepo.findAll();
        return beoordelingen;
    }

    public Beoordeling getById(long id) {
        Beoordeling beoordeling = null;
        if (beoordelingRepo.exists(id)) {
            beoordeling = beoordelingRepo.findOne(id);
        }
        return beoordeling;
    }

    public List<Beoordeling> getByArtikel(Artikel a) {
        List<Beoordeling> beoordelingen = beoordelingRepo.findByArtikel(a);
        return beoordelingen;
    }

    public Beoordeling saveBeoordeling(Beoordeling beoordeling) {
        return this.beoordelingRepo.save(beoordeling);
    }

    public boolean checkIfUnique(MoviefanUser mu, Artikel a) {
        boolean result = false;
        List<Beoordeling> b = null;
        b = this.beoordelingRepo.findByMoviefanUserAndArtikel(mu, a);
        if (b.isEmpty()) {
            result = true;
        } else {
            result = false;
        }
        return result;
    }

    public List<Beoordeling> getAllBeoordelingenByUser(MoviefanUser mu) {
        return this.beoordelingRepo.findByMoviefanUser(mu);
    }
}
